<?php

require_once 'Mobitv/Admin/Action.php';

class AddAction extends Mobitv_Admin_Action
{
    private $_userDao = null;
    public function execute(){
        $this->checkPermission();
        $this->updateLoginStatus();
        $this->_userDao = $userDao = Vega_Dao::factory('Mobitv_Admin_Admin');
        if($_POST) {
            $rules = array(
		'name'          => 'required|valid_username|min_length:3|max_length:45|call_userNotExist',
                'fullname'      => 'required|max_length:255',
                'email'         => 'required|valid_email',
		);

		$this->buildValidator($rules);

                $langError = array(
                    'name' => array(
                        'required'      => 'Bạn phải nhập vào tên truy cập',
                        'valid_username'=> 'Tên chỉ bao gồm chữ cái, số và dấu _',
                        'min_length'    => 'Tên truy cập không được dưới %val% ký tự',
                        'max_length'    => 'Tên truy cập không được quá %val% ký tự',
                        'userNotExist'  => 'Tên truy cập này đã tồn tại'
                    ),
                    'fullname' => array(
                        'required'      => 'Bạn phải nhập vào tên đầy đủ',
                        'max_length'    => 'Tên đầy đủ không được quá %val% ký tự'
                    ),
                    'email' => array(
                        'required'      => 'Bạn phải nhập vào email',
                        'valid_email'   => 'Email không hợp lệ'
                    )
                );

                $this->_validator->setErrorMessages($langError);

                if ( ! $this->_validator->execute()){
                    $this->_view->assign('error', $this->_validator->getErrorMessages());
                    $_SESSION['msg'] = 'Có lỗi xảy ra!';
		}else{
                    // Save to database
                    $data = array(
                        'name' => $_POST['name'],
                        'fullname' => $_POST['fullname'],
                        'password'  => $_POST['password'],
                        'email' => $_POST['email'],
                        'group_id' => substr($_POST['group_id_list'],0,-3),
                        'parent_id' => $_POST['rdo_parent_cp']
                    );
                    if(!$userDao->insert($data)) {
                        $this->gotoUrl('/admin', 'Lỗi hệ thống!');
                    } else {
                        $this->gotoUrl('/admin', 'Thêm thành công!');
                    }
            }
        }

        $groupDao = Vega_Dao::factory('Mobitv_Admin_Group');
        $groups = $groupDao->getList();
        $this->_view->assign('groups', $groups);
        $arrParentCP = $userDao->getAllParentCP();
        $this->_view->assign('arrParentCP', $arrParentCP);
    }

    public function userNotExist()
    {
        if($this->_userDao->isExist($_POST['name'])) {
    		return false;
    	} else {
    		return true;
    	}
    }
}